order by random()')
g.db.execute('delete from user_choice_buffer_anonymous')
g.db.commit()
- g.db.execute('insert into user_vote (id_user, id_vote) \
- values (?, ?)'
- , [session.get('user').get('id'), vote['id']])
+ comment = request.form.get('comment', None)
+ g.db.execute('insert into user_vote (id_user, id_vote, comment) \
+ values (?, ?, ?)'
+ , [session.get('user').get('id'), vote['id'], comment])
g.db.commit()
else:
abort(401)
# ACTION: query users' choices joined with users' identity if not anonymous
user_choices = query_db('select user_choice.id_user as userid, users.name as username, \
choices.id as choiceid, choices.name as choice_name, \
- user_choice.weight as weight \
+ user_choice.weight as weight, user_vote.comment as comment \
from choices \
join user_choice on choices.id = user_choice.id_choice \
left join users on userid = users.id \
# ACTION: list user results per user
users = OrderedDict()
if vote['is_anonymous']:
- user_votes = query_db('select users.name, id_user as userid \
+ user_votes = query_db('select users.name, id_user as userid, comment \
from user_vote \
join users on users.id = id_user where id_vote = ?', [idvote])
for uc in user_votes:
users[uc['userid']] = { 'username':uc['name']
+ , 'comment':uc['comment']
, 'choices':{}
, 'userid':uc['userid'] }
else:
else:
users[uc['userid']] = { 'userid':uc['userid']
, 'username':uc['username']
+ , 'comment':uc['comment']
, 'choices':{uc['choiceid']:value} }
attachments = query_db('select * from attachments where id_vote=?', [idvote])
if query_db('select * from user_group where id_group = ? and id_user = ?'
date INTEGER DEFAULT CURRENT_TIMESTAMP NOT NULL,
id_user INTEGER NOT NULL,
id_vote INTEGER NOT NULL,
+ comment TEXT,
FOREIGN KEY(id_user) REFERENCES users (id) ON DELETE CASCADE,
FOREIGN KEY(id_vote) REFERENCES votes (id) ON DELETE CASCADE,
PRIMARY KEY(id_user, id_vote)
margin-top:9px;
}
+.table-comments tbody tr td {
+ text-align:left;
+ }
+
.table-votes {
- table-layout:fixed;
+ table-layout:fixed;
}
.table-votes thead th {
text-align: right;
vertical-align: middle;
}
+.table-votes thead th.users {
+ text-align:left;
+ padding-left:1em;
+ }
.table-votes th.choice-name {
text-align: center;
}
+.table-votes thead th.comments {
+ text-align:left;
+ padding-left:1em;
+ }
+.table-votes tbody td.ok {
+ text-align:left;
+ padding-left:1em;
+ }
.table-votes input {
margin: 0;
<table class="table table-condensed table-bordered table-votes cardinal-{{ vote.id_cardinal }}">
<thead>
<tr>
- <th></th>
+ <th class="users">Votant-e-s</th>
{% for choice in choices %}
<th class="choice-name">{{ choice.name }}</th>
{% endfor %}
{% if 'user' in session and (can_vote or (not vote['is_terminated'] and not vote['is_anonymous'])) %}
<th></th>
+ {% else %}
+ <th class="comments">Commentaires</th>
{% endif %}
</tr>
{% if vote.is_transparent %}
</select>
</td>
{% endfor %}
- <td><input type="submit" class="btn btn-primary" value="OK" /></td>
+ <td><input type="submit" class="btn btn-primary" value="OK" />
+ <textarea name="comment" class="input-xlarge" placeholder="Commentaire"></textarea></td>
</tr>
</form>
{% endif %}
<td class="{{user.choices[choice.id].class}}"><span>{{ user.choices[choice.id].name }}</span></td>
{% endfor %}
{% if 'user' in session and (can_vote or (not vote['is_terminated'] and not vote['is_anonymous'])) %}
- <td>{% if user.userid == session.user.id %}
+ <td class="ok">{% if user.userid == session.user.id %}
<a href="#delete" data-toggle="modal" class="btn btn-danger btn-mini" title="Supprimer"><i class="icon-remove icon-white"></i></a>
<div class="modal hide fade" id="delete">
<div class="modal-header">
<a href="#" class="btn" data-dismiss="modal">Annuler</a>
</div>
</div>
- {% endif %}</td>
+ {% endif %}
+ <span class="comment">{% if user.comment %}{{user.comment}}{%endif%}</span>
+ </td>
+ {% else %}
+ <td class="ok">
+ <span class="comment">{% if user.comment %}{{user.comment}}{%endif%}</span>
+ </td>
{% endif %}
</tr>
{% endif %}
{% endif %}
</div>
+{% if vote.is_anonymous %}
+<div class="span9">
+ <h2 class='page-header'>Commentaires</h2>
+ <table class="table table-condensed table-bordered table-comments">
+ <tbody>
+ {% for user in users %}
+ <tr><td><span class="comment">{% if user.comment %}{{user.comment}}{%endif%}</span></td></tr>
+ {% endfor %}
+ </tbody>
+ </table>
+{% endif %}
+
</div>
{% endblock %}